package com.easylinkin.linkappapi.meterbilling.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

@Data
@NoArgsConstructor
@TableName(value = "cbjf_recharge_record")
public class RechargeRecord {
    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 订单号
     */
    @TableField(value = "order_num")
    private String orderNum;

    /**
     * 合同ID
     */
    @TableField(value = "contract_id")
    private Integer contractId;

    /**
     * 充值类型（0：水表:1：电表）
     */
    @TableField(value = "recharge_type")
    private Integer rechargeType;

    /**
     * 类型（0：充值，1：退款）
     */
    @TableField(value = "type")
    private Integer type;

    /**
     * 充值金额
     */
    @TableField(value = "price")
    private BigDecimal price;

    /**
     * 支付方式（0：现金，1：微信支付）
     */
    @TableField(value = "pay_type")
    private Integer payType;

    /**
     * 充值平台（0：pc端 :1：小程序）
     */
    @TableField(value = "recharge_platform")
    private Integer rechargePlatform;

    /**
     * 到账时间
     */
    @JsonFormat(pattern ="yyyy-MM-dd HH:mm:ss" ,timezone="GMT+8")
    @TableField(value = "notify_time")
    private LocalDateTime notifyTime;

    /**
     * 充值状态（0：创建:1：成功:2：失败）
     */
    @TableField(value = "recharge_status")
    private Integer rechargeStatus;

    /**
     * 支付时间
     */
    @JsonFormat(pattern ="yyyy-MM-dd HH:mm:ss" ,timezone="GMT+8")
    @TableField(value = "pay_time")
    private LocalDateTime payTime;

    /**
     * 支付人
     */
    @TableField(value = "payer")
    private String payer;

    /**
     * 创建时间
     */
    @JsonFormat(pattern ="yyyy-MM-dd HH:mm:ss" ,timezone="GMT+8")
    @TableField(value = "create_time")
    private LocalDateTime createTime;

    /**
     * 操作人
     */
    @TableField(value = "operator")
    private String operator;

    /**
     * 第三方订单号
     */
    @TableField(value = "third_order_num")
    private String thirdOrderNum;

    /**
     * 租户ID
     */
    @TableField(value = "tenant_id")
    private String tenantId;

    /***
     * 房间名
     */
    @TableField(exist = false)
    private String roomName;

    /***
     * 住户
     */
    @TableField(exist = false)
    private String name;

    /***
     * 手机号码
     */
    @TableField(exist = false)
    private String phone;

    /***
     * 充值类型
     */
    @TableField(exist = false)
    private String rechargeTypeName;

    /***
     * 支付方式
     */
    @TableField(exist = false)
    private String payTypeName;

    /***
     * 操作人名称
     */
    @TableField(exist = false)
    private String operatorName;


    /**
     * 房间ID
     */
    @TableField(exist = false)
    private Integer roomId;

    /**
     * 房间编码
     */
    @TableField(exist = false)
    private String roomCode;

    /***
     * 查询开始时间
     */
    @TableField(exist = false)
    private Date queryPayTimeStart;

    /***
     * 查询结束时间
     */
    @TableField(exist = false)
    private Date queryPayTimeEnd;

    /***
     * 支付时间string
     */
    @TableField(exist = false)
    private String payTimeName;

    /***
     * 充值类型
     */
    @TableField(exist = false)
    private String typeName;

    /***
     * 充值金额
     */
    @TableField(exist = false)
    private String priceName;

    /***
     * 操作时间
     */
    @TableField(exist = false)
    private String createTimeName;

    @TableField(exist = false)
    private List<Integer> ids;

    /***
     * 功能标识字段 1 app端
     */
    @TableField(exist = false)
    private Integer functionFdentification;
}